import openpyxl
from openpyxl.styles import Font
from pathlib import Path

# 设置目标目录
output_dir = Path('C:/Users/jerry/IdeaProjects/campusAid/illustration/runtime')
output_file = output_dir / 'errors.xlsx'

# 确保目标目录存在
output_dir.mkdir(parents=True, exist_ok=True)

# 创建一个新的工作簿和激活的工作表
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = '错误处理表'

# 表头
column_headers = [
    "错误类型",
    "子项",
    "错误原因",
    "系统输出信息的形式与含义",
    "处理方法"
]

# 设置表头
for col_num, data in enumerate(column_headers, 1):
    sheet.cell(row=1, column=col_num).value = data
    sheet.cell(row=1, column=col_num).font = Font(bold=True)

# 数据行
data_rows = [
    ["数据库错误", "连接", "账号密码错误或者权限错误", "数据库连接失败：认证失败或权限不足", "检查数据库配置（账号、密码、权限）；确保网络可达性"],
    ["数据库错误", "数据库", "表设计出现错误", "表不存在、字段不匹配等", "检查数据库结构，确认是否存在对应表和字段，必要时进行数据迁移"],
    ["网络错误", "服务调用", "网络不可达或目标服务器宕机", "无法连接到远程服务器", "检查网络连接；确认目标服务器是否正常运行"],
    ["输入验证错误", "参数校验", "用户输入非法或缺失", "参数无效：缺少用户名或密码", "对输入进行严格校验，提供用户友好的错误提示"],
    ["业务逻辑错误", "功能执行", "权限不足或操作不符合业务规则", "您无权执行此操作", "在执行前检查用户权限及业务条件"],
    ["文件处理错误", "文件读写", "文件路径无效、文件损坏或权限不足", "无法打开文件：路径无效", "验证文件路径有效性，确保有足够的访问权限"],
    ["系统内部错误", "异常抛出", "代码缺陷、未捕获的异常", "系统内部错误", "使用全局异常处理器捕获未处理的异常，记录日志以便排查"],
    ["第三方接口错误", "接口调用", "接口地址变更、参数格式错误或API限制", "请求被拒绝：API配额已满", "确保使用正确的接口地址和参数格式；监控API使用情况"],
    ["安全相关错误", "认证失败", "登录凭证无效、会话超时", "登录失效，请重新登录", "实现会话管理和令牌刷新机制"],
    ["安全相关错误", "权限不足", "用户尝试访问受保护资源", "权限不足，无法访问该资源", "在访问控制层检查用户角色和权限"]
]

# 写入数据行
for row_num, row_data in enumerate(data_rows, 2):
    for col_num, cell_value in enumerate(row_data, 1):
        sheet.cell(row=row_num, column=col_num).value = cell_value

# 保存Excel文件
wb.save(output_file)
print(f"✅ 出错信息处理表已成功写入 {output_file}")
